<!DOCTYPE html>
<!-- saved from url=(0048)http://www.cnblogs.com/shihaiming/p/6283256.html -->
<html lang="zh-cn"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1">
<title>FastDFS 使用经验分享 - 这个名字想了很久~ - 博客园</title>
<link type="text/css" rel="stylesheet" href="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/blog-common.css">
<link id="MainCss" type="text/css" rel="stylesheet" href="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/bundle-coffee.css">
<link id="mobile-style" media="only screen and (max-width: 768px)" type="text/css" rel="stylesheet" href="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/bundle-coffee-mobile.css">
<link title="RSS" type="application/rss+xml" rel="alternate" href="http://www.cnblogs.com/shihaiming/rss">
<link title="RSD" type="application/rsd+xml" rel="EditURI" href="http://www.cnblogs.com/shihaiming/rsd.xml">
<link type="application/wlwmanifest+xml" rel="wlwmanifest" href="http://www.cnblogs.com/shihaiming/wlwmanifest.xml">
<script async="" src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/analytics.js.下载"></script><script type="text/javascript" src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/encoder.js.下载"></script><script src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/jquery.js.下载" type="text/javascript"></script>  
<script type="text/javascript">var currentBlogApp = 'shihaiming', cb_enable_mathjax=false;var isLogined=false;</script>
<script src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/blog-common.js.下载" type="text/javascript"></script>
</head>
<body>
<a name="top"></a>

<!--done-->
<div id="home">
<div id="header">
	<div id="blogTitle">
	<a id="lnkBlogLogo" href="http://www.cnblogs.com/shihaiming/"><img id="blogLogo" src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/logo.gif" alt="返回主页"></a>			
		
<!--done-->
<h1><a id="Header1_HeaderTitle" class="headermaintitle" href="http://www.cnblogs.com/shihaiming/">起个名字好难</a></h1>
<h2></h2>



		
	</div><!--end: blogTitle 博客的标题和副标题 -->
</div><!--end: header 头部 -->

<div id="main">
	<div id="mainContent">
	<div class="forFlow">
		<div id="navigator">
			
<ul id="navList">
	<li><a id="blog_nav_sitehome" class="menu" href="http://www.cnblogs.com/">博客园</a></li>
	<li><a id="blog_nav_myhome" class="menu" href="http://www.cnblogs.com/shihaiming/">首页</a></li>
	<li><a id="blog_nav_newpost" class="menu" rel="nofollow" href="https://i.cnblogs.com/EditPosts.aspx?opt=1">新随笔</a></li>
	<li><a id="blog_nav_contact" accesskey="9" class="menu" rel="nofollow" href="https://msg.cnblogs.com/send/%E8%BF%99%E4%B8%AA%E5%90%8D%E5%AD%97%E6%83%B3%E4%BA%86%E5%BE%88%E4%B9%85~">联系</a></li>
	<li><a id="blog_nav_admin" class="menu" rel="nofollow" href="https://i.cnblogs.com/">管理</a></li>
	<li><a id="blog_nav_rss" class="menu" href="http://www.cnblogs.com/shihaiming/rss">订阅</a>
	<a id="blog_nav_rss_image" class="aHeaderXML" href="http://www.cnblogs.com/shihaiming/rss"><img src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/xml.gif" alt="订阅"></a></li>
</ul>


			<div class="blogStats">
				
				<div id="blog_stats">
<!--done-->
随笔- 452&nbsp;
文章- 0&nbsp;
评论- 11&nbsp;
</div>
				
			</div><!--end: blogStats -->
		</div><!--end: navigator 博客导航栏 -->
		
<div id="post_detail">
<!--done-->
<div id="topics">
	<div class="post">
		<h1 class="postTitle">
			<a id="cb_post_title_url" class="postTitle2" href="http://www.cnblogs.com/shihaiming/p/6283256.html">FastDFS 使用经验分享</a>
		</h1>
		<div class="clear"></div>
		<div class="postBody">
			<div id="cnblogs_post_body"><p>原文：http://www.ttlsa.com/fastdfs/fastdfs-experience-sharing/</p>
<p>&nbsp;</p>
<h3>应用背景</h3>
<p>文件被上传到Fast<a title="dfs" href="http://www.ttlsa.com/dfs/" target="_blank">DFS</a>后Storage服务端将返回的文件索引（FID），其中文件名是根据FastDFS自定义规则重新生成的，而不是原始文件名，例如：&nbsp;<strong>group2/M00/00/89/eQ6h3FKJf_PRl8p4AUz4wO8tqaA688.apk</strong></p>
<p>使用http下载时如不加处理，显示给用户的文件名会是这样的<strong>eQ6h3FKJf_PRl8p4AUz4wO8tqaA688.apk</strong>，这样的用户体验很不好。由于FastDFS不会存储原始文件名，也没有提供恢复原始文件名的方法，所以需要应用系统自己想办法恢复原始文件名。</p>
<h3>解决方法</h3>
<p>通过在项目中多次尝试，找到一种较简单的实现方法，实现过程如下：</p>
<p>一. 应用系统在上传文件到FastDFS成功时将<strong>原始文件名</strong>和<strong>“文件索引（FID）”</strong>保存下来（例如：保存到数据库）。</p>
<p>二. 用户点击下载的时用<strong><a title="nginx" href="http://www.ttlsa.com/nginx/" target="_blank">Nginx</a>的域名</strong>和<strong>FID</strong>拼出url，然后在url后面增加一个参数，指定原始文件名。例如：<strong>http://121.14.161.48:9030/group2/M00/00/89/eQ6h3FKJf_PRl8p4AUz4wO8tqaA688.apk?attname=filename.apk</strong></p>
<p>三. 在Nginx上进行如下配置，这样Nginx就会截获url中的参数attname，在Http响应头里面加上字段 Content-Disposition “attachment;filename=$arg_attname”。</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/copycode.gif" alt="复制代码"></a></span></div>
<pre>location /group2/<span style="color: #000000">M00 {
root </span>/data/store/<span style="color: #000000">data;
</span><span style="color: #0000ff">if</span> ($arg_attname ~ "^(.*).apk"<span style="color: #000000">) {
    add_header Content</span>-Disposition "attachment;filename=$arg_attname"<span style="color: #000000">;
}
ngx_fastdfs_module;
}</span></pre>
<div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/copycode.gif" alt="复制代码"></a></span></div></div>
<p>&nbsp;</p>
<div id="crayon-58788d23a42d8984972431" class="crayon-syntax crayon-theme-visual-assist crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover">
<div class="crayon-plain-wrap">&nbsp;</div>
<div class="crayon-main">&nbsp;</div>
</div>
<p>四. 浏览器发现响应头里面有Content-Disposition “attachment;filename=$arg_attname”时，就会把文件名显示成filename指定的名称。</p>
<p>完整的请求和响应消息如下：</p>
<p>请求包：</p>
<div id="crayon-58788d23a42e4849879968" class="crayon-syntax crayon-theme-visual-assist crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover">
<div class="crayon-plain-wrap">&nbsp;
<div class="cnblogs_code"><div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/copycode.gif" alt="复制代码"></a></span></div>
<pre>Request URL:http:<span style="color: #008000">//</span><span style="color: #008000">121.14.161.48:9030/group2/M00/00/89/eQ6h3FKJf_PRl8p4AUz4wO8tqaA688.apk?attname=filename.apk</span>
<span style="color: #000000">Request Method:GET
Status Code:</span>200<span style="color: #000000"> OK
Request Headersview source
Accept:text</span>/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*<span style="color: #008000">/*</span><span style="color: #008000">;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8,en;q=0.6
Connection:keep-alive
Host:121.14.161.48:9030
Referer:</span><span style="color: #008000; text-decoration: underline">http://appandroidpcfront.test.uae.uc.cn/apps</span><span style="color: #008000">
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
Query String Parametersview sourceview URL encoded
attname:filename.apk</span></pre>
<div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/copycode.gif" alt="复制代码"></a></span></div></div>
<p>&nbsp;</p>
</div>
<div class="crayon-main">&nbsp;</div>
</div>
<p>返回包：</p>
<div id="crayon-58788d23a42e9351805278" class="crayon-syntax crayon-theme-visual-assist crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover">
<div class="crayon-plain-wrap">&nbsp;
<div class="cnblogs_code"><div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/copycode.gif" alt="复制代码"></a></span></div>
<pre><span style="color: #000000">Response Headersview source
Accept</span>-<span style="color: #000000">Ranges:bytes
Connection:keep</span>-<span style="color: #000000">alive
Content</span>-Disposition:attachment;filename=<span style="color: #000000">filename.apk
Content</span>-Length:21821632<span style="color: #000000">
Date:Thu, </span>28 Nov 2013 11:40:46<span style="color: #000000"> GMT
Last</span>-Modified:Mon, 18 Nov 2013 02:48:19<span style="color: #000000"> GMT
Server:nginx</span>/1.4.3</pre>
<div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/copycode.gif" alt="复制代码"></a></span></div></div>
<p>&nbsp;</p>
</div>
<div class="crayon-main">&nbsp;</div>
<div class="crayon-main">&nbsp;</div>
</div></div><div id="MySignature"></div>
<div class="clear"></div>
<div id="blog_post_info_block">
<div id="BlogPostCategory"></div>
<div id="EntryTag">标签: <a href="http://www.cnblogs.com/shihaiming/tag/FastDFS/">FastDFS</a></div>
<div id="blog_post_info"><div id="green_channel">
        <a href="javascript:void(0);" id="green_channel_digg" onclick="DiggIt(6283256,cb_blogId,1);green_channel_success(this,&#39;谢谢推荐！&#39;);">好文要顶</a>
            <a id="green_channel_follow" onclick="follow(&#39;c8c8e36a-6c55-e611-9fc1-ac853d9f53cc&#39;);" href="javascript:void(0);">关注我</a>
    <a id="green_channel_favorite" onclick="AddToWz(cb_entryId);return false;" href="javascript:void(0);">收藏该文</a>
    <a id="green_channel_weibo" href="javascript:void(0);" title="分享至新浪微博" onclick="ShareToTsina()"><img src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/icon_weibo_24.png" alt=""></a>
    <a id="green_channel_wechat" href="javascript:void(0);" title="分享至微信" onclick="shareOnWechat()"><img src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/wechat.png" alt=""></a>
</div>
<div id="author_profile">
    <div id="author_profile_info" class="author_profile_info">
            <a href="http://home.cnblogs.com/u/shihaiming/" target="_blank"><img src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/20170117100450.png" class="author_avatar" alt=""></a>
        <div id="author_profile_detail" class="author_profile_info">
            <a href="http://home.cnblogs.com/u/shihaiming/">这个名字想了很久~</a><br>
            <a href="http://home.cnblogs.com/u/shihaiming/followees">关注 - 5</a><br>
            <a href="http://home.cnblogs.com/u/shihaiming/followers">粉丝 - 14</a>
        </div>
    </div>
    <div class="clear"></div>
    <div id="author_profile_honor"></div>
    <div id="author_profile_follow">
                <a href="javascript:void(0);" onclick="follow(&#39;c8c8e36a-6c55-e611-9fc1-ac853d9f53cc&#39;);return false;">+加关注</a>
    </div>
</div>
<div id="div_digg">
    <div class="diggit" onclick="votePost(6283256,&#39;Digg&#39;)">
        <span class="diggnum" id="digg_count">0</span>
    </div>
    <div class="buryit" onclick="votePost(6283256,&#39;Bury&#39;)">
        <span class="burynum" id="bury_count">0</span>
    </div>
    <div class="clear"></div>
    <div class="diggword" id="digg_tips">
    </div>
</div>
</div>
<div class="clear"></div>
<div id="post_next_prev"><a href="http://www.cnblogs.com/shihaiming/p/6282226.html" class="p_n_p_prefix">« </a> 上一篇：<a href="http://www.cnblogs.com/shihaiming/p/6282226.html" title="发布于2017-01-13 12:00">SpringMVC整合fastdfs-client-java实现web文件上传下载</a><br><a href="http://www.cnblogs.com/shihaiming/p/6283681.html" class="p_n_p_prefix">» </a> 下一篇：<a href="http://www.cnblogs.com/shihaiming/p/6283681.html" title="发布于2017-01-13 18:04">fastdfs-zyc监控系统的使用</a><br></div>
</div>


		</div>
		<div class="postDesc">posted @ <span id="post-date">2017-01-13 16:33</span> <a href="http://www.cnblogs.com/shihaiming/">这个名字想了很久~</a> 阅读(<span id="post_view_count">827</span>) 评论(<span id="post_comment_count">0</span>)  <a href="https://i.cnblogs.com/EditPosts.aspx?postid=6283256" rel="nofollow">编辑</a> <a href="http://www.cnblogs.com/shihaiming/p/6283256.html#" onclick="AddToWz(6283256);return false;">收藏</a></div>
	</div>
	<script type="text/javascript">var allowComments=true,cb_blogId=296890,cb_entryId=6283256,cb_blogApp=currentBlogApp,cb_blogUserGuid='c8c8e36a-6c55-e611-9fc1-ac853d9f53cc',cb_entryCreatedDate='2017/1/13 16:33:00';loadViewCount(cb_entryId);</script>
	
</div><!--end: topics 文章、评论容器-->
</div><a name="!comments"></a><div id="blog-comments-placeholder"></div><script type="text/javascript">var commentManager = new blogCommentManager();commentManager.renderComments(0);</script>
<div id="comment_form" class="commentform">
<a name="commentform"></a>
<div id="divCommentShow"></div>
<div id="comment_nav"><span id="span_refresh_tips"></span><a href="javascript:void(0);" onclick="return RefreshCommentList();" id="lnk_RefreshComments" runat="server" clientidmode="Static">刷新评论</a><a href="http://www.cnblogs.com/shihaiming/p/6283256.html#" onclick="return RefreshPage();">刷新页面</a><a href="http://www.cnblogs.com/shihaiming/p/6283256.html#top">返回顶部</a></div>
<div id="comment_form_container"><div class="login_tips">注册用户登录后才能发表评论，请 <a rel="nofollow" href="javascript:void(0);" class="underline" onclick="return login(&#39;commentform&#39;);">登录</a> 或 <a rel="nofollow" href="javascript:void(0);" class="underline" onclick="return register();">注册</a>，<a href="http://www.cnblogs.com/">访问</a>网站首页。</div></div>
<div class="ad_text_commentbox" id="ad_text_under_commentbox"></div>
<div id="ad_t2"><a href="http://www.ucancode.com/index.htm" target="_blank">【推荐】50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库</a><br><a href="http://cn.udacity.com/android/?utm_source=cnblogs&amp;utm_medium=referral&amp;utm_campaign=AND02" target="_blank">【推荐】Google+滴滴联手打造Android开发工程师课程</a><br><a href="http://cloud.qy.com.cn/68?a=cnblog" target="_blank">【推荐】群英云服务器性价王，2核4G5M BGP带宽 68元首月！</a><br></div>
<div id="opt_under_post"></div>
<div id="cnblogs_c1" class="c_ad_block"><a href="http://www.gcpowertools.com.cn/products/activereports_overview.htm?utm_source=cnblogs&amp;utm_medium=blogpage&amp;utm_term=bottom&amp;utm_content=AR&amp;utm_campaign=community" target="_blank"><img width="300" height="250" src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/24442-20170331214645461-178851866.gif" alt="AR"></a></div>
<div id="under_post_news"><div class="itnews c_ad_block"><b>最新IT新闻</b>:<br> ·  <a href="http://news.cnblogs.com/n/567233/" target="_blank">Netflix别高兴得太早：劲敌亚马逊不容忽视</a><br> ·  <a href="http://news.cnblogs.com/n/567232/" target="_blank">NASA新型重型火箭SLS前两次飞行仍可能会遭到推迟</a><br> ·  <a href="http://news.cnblogs.com/n/567231/" target="_blank">新一代Windows系统重磅曝光：全局标签化</a><br> ·  <a href="http://news.cnblogs.com/n/567230/" target="_blank">差不多12年前发布的iTunes更新原来很重要</a><br> ·  <a href="http://news.cnblogs.com/n/567229/" target="_blank">路由器的远程访问漏洞最终公开</a><br>» <a href="http://news.cnblogs.com/" title="IT新闻" target="_blank">更多新闻...</a></div></div>
<div id="cnblogs_c2" class="c_ad_block"><a href="http://click.aliyun.com/m/15483/" target="_blank"><img width="468" height="60" src="./FastDFS 使用经验分享 - 这个名字想了很久_ - 博客园_files/24442-20170331150421570-489464769.jpg" alt="阿里云C2"></a></div>
<div id="under_post_kb"><div class="itnews c_ad_block" id="kb_block"><b>最新知识库文章</b>:<br><div id="kb_recent"> ·  <a href="http://kb.cnblogs.com/page/566523/" target="_blank">程序员，如何从平庸走向理想？</a><br> ·  <a href="http://kb.cnblogs.com/page/566318/" target="_blank">我为什么鼓励工程师写blog</a><br> ·  <a href="http://kb.cnblogs.com/page/566528/" target="_blank">怎么轻松学习JavaScript</a><br> ·  <a href="http://kb.cnblogs.com/page/509431/" target="_blank">如何打好前端游击战</a><br> ·  <a href="http://kb.cnblogs.com/page/564590/" target="_blank">技术文章的阅读姿势</a><br></div>» <a href="http://kb.cnblogs.com/" target="_blank">更多知识库文章...</a></div></div>
<div id="HistoryToday" class="c_ad_block"></div>
<script type="text/javascript">
    fixPostBody();
    setTimeout(function () { incrementViewCount(cb_entryId); }, 50);
    deliverAdT2();
    deliverAdC1();
    deliverAdC2();    
    loadNewsAndKb();
    loadBlogSignature();
    LoadPostInfoBlock(cb_blogId, cb_entryId, cb_blogApp, cb_blogUserGuid);
    GetPrevNextPost(cb_entryId, cb_blogId, cb_entryCreatedDate);
    loadOptUnderPost();
    GetHistoryToday(cb_blogId, cb_blogApp, cb_entryCreatedDate);   
</script>
</div>


	</div><!--end: forFlow -->
	</div><!--end: mainContent 主体内容容器-->

	<div id="sideBar">
		<div id="sideBarMain">
			
<!--done-->
<div class="newsItem">
<h3 class="catListTitle">公告</h3>
	<div id="blog-news"><div id="profile_block">昵称：<a href="http://home.cnblogs.com/u/shihaiming/">这个名字想了很久~</a><br>园龄：<a href="http://home.cnblogs.com/u/shihaiming/" title="入园时间：2016-07-29">8个月</a><br>粉丝：<a href="http://home.cnblogs.com/u/shihaiming/followers/">14</a><br>关注：<a href="http://home.cnblogs.com/u/shihaiming/followees/">5</a><div id="p_b_follow"><a href="javascript:void(0);" onclick="follow(&#39;c8c8e36a-6c55-e611-9fc1-ac853d9f53cc&#39;)">+加关注</a></div></div></div><script type="text/javascript">loadBlogNews();</script>
</div>

			<div id="calendar"><div id="blog-calendar" style=""><table id="blogCalendar" class="Cal" cellspacing="0" cellpadding="0" title="Calendar">
	<tbody><tr><td colspan="7"><table class="CalTitle" cellspacing="0">
		<tbody><tr><td class="CalNextPrev"><a href="javascript:void(0);" onclick="loadBlogCalendar(&#39;2017/03/01&#39;);return false;">&lt;</a></td><td align="center">2017年4月</td><td class="CalNextPrev" align="right"><a href="javascript:void(0);" onclick="loadBlogCalendar(&#39;2017/05/01&#39;);return false;">&gt;</a></td></tr>
	</tbody></table></td></tr><tr><th class="CalDayHeader" align="center" abbr="日" scope="col">日</th><th class="CalDayHeader" align="center" abbr="一" scope="col">一</th><th class="CalDayHeader" align="center" abbr="二" scope="col">二</th><th class="CalDayHeader" align="center" abbr="三" scope="col">三</th><th class="CalDayHeader" align="center" abbr="四" scope="col">四</th><th class="CalDayHeader" align="center" abbr="五" scope="col">五</th><th class="CalDayHeader" align="center" abbr="六" scope="col">六</th></tr><tr><td class="CalOtherMonthDay" align="center">26</td><td class="CalOtherMonthDay" align="center">27</td><td class="CalOtherMonthDay" align="center">28</td><td class="CalOtherMonthDay" align="center">29</td><td class="CalOtherMonthDay" align="center">30</td><td class="CalOtherMonthDay" align="center">31</td><td class="CalWeekendDay" align="center">1</td></tr><tr><td class="CalWeekendDay" align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center"><a href="http://www.cnblogs.com/shihaiming/archive/2017/04/05.html"><u>5</u></a></td><td align="center"><a href="http://www.cnblogs.com/shihaiming/archive/2017/04/06.html"><u>6</u></a></td><td align="center">7</td><td class="CalWeekendDay" align="center">8</td></tr><tr><td class="CalWeekendDay" align="center">9</td><td align="center"><a href="http://www.cnblogs.com/shihaiming/archive/2017/04/10.html"><u>10</u></a></td><td align="center">11</td><td align="center">12</td><td align="center"><a href="http://www.cnblogs.com/shihaiming/archive/2017/04/13.html"><u>13</u></a></td><td align="center"><a href="http://www.cnblogs.com/shihaiming/archive/2017/04/14.html"><u>14</u></a></td><td class="CalWeekendDay" align="center">15</td></tr><tr><td class="CalTodayDay" align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td class="CalWeekendDay" align="center">22</td></tr><tr><td class="CalWeekendDay" align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td class="CalWeekendDay" align="center">29</td></tr><tr><td class="CalWeekendDay" align="center">30</td><td class="CalOtherMonthDay" align="center">1</td><td class="CalOtherMonthDay" align="center">2</td><td class="CalOtherMonthDay" align="center">3</td><td class="CalOtherMonthDay" align="center">4</td><td class="CalOtherMonthDay" align="center">5</td><td class="CalOtherMonthDay" align="center">6</td></tr>
</tbody></table></div><script type="text/javascript">loadBlogDefaultCalendar();</script></div>
			
			<div id="leftcontentcontainer">
				<div id="blog-sidecolumn"><div id="sidebar_search" class="sidebar-block">
<div id="sidebar_search" class="mySearch">
<h3 class="catListTitle">搜索</h3>
<div id="sidebar_search_box">
<div id="widget_my_zzk" class="div_my_zzk"><input type="text" id="q" onkeydown="return zzk_go_enter(event);" class="input_my_zzk">&nbsp;<input onclick="zzk_go()" type="button" value="找找看" id="btnZzk" class="btn_my_zzk"></div>
<div id="widget_my_google" class="div_my_zzk"><input type="text" name="google_q" id="google_q" onkeydown="return google_go_enter(event)" class="input_my_zzk">&nbsp;<input onclick="google_go()" type="button" value="谷歌搜索" class="btn_my_zzk"></div>
</div>
</div>

</div><div id="sidebar_shortcut" class="sidebar-block">
<div class="catListLink">
<h3 class="catListTitle">常用链接</h3>
<ul>
<li><a href="http://www.cnblogs.com/shihaiming/p/" title="我的博客的随笔列表">我的随笔</a></li><li><a href="http://www.cnblogs.com/shihaiming/MyComments.html" title="我发表过的评论列表">我的评论</a></li><li><a href="http://www.cnblogs.com/shihaiming/OtherPosts.html" title="我评论过的随笔列表">我的参与</a></li><li><a href="http://www.cnblogs.com/shihaiming/RecentComments.html" title="我的博客的评论列表">最新评论</a></li><li><a href="http://www.cnblogs.com/shihaiming/tag/" title="我的博客的标签列表">我的标签</a></li>
<li><a id="itemListLink" onclick="this.blur();WarpClass(&#39;itemListLink&#39;, &#39;itemListLin_con&#39;);return false;" href="http://www.cnblogs.com/shihaiming/p/6283256.html#">更多链接</a></li>
</ul>
<div id="itemListLin_con" style="display:none;">
<ul>

</ul>
</div>
</div></div><div id="sidebar_toptags" class="sidebar-block">
<div class="catListTag">
<h3 class="catListTitle">我的标签</h3>
<ul>
<li><a href="http://www.cnblogs.com/shihaiming/tag/mysql/">mysql</a>(39)</li><li><a href="http://www.cnblogs.com/shihaiming/tag/maven/">maven</a>(24)</li><li><a href="http://www.cnblogs.com/shihaiming/tag/redis/">redis</a>(21)</li><li><a href="http://www.cnblogs.com/shihaiming/tag/nginx/">nginx</a>(20)</li><li><a href="http://www.cnblogs.com/shihaiming/tag/openfire/">openfire</a>(19)</li><li><a href="http://www.cnblogs.com/shihaiming/tag/mybatis/">mybatis</a>(14)</li><li><a href="http://www.cnblogs.com/shihaiming/tag/linux/">linux</a>(12)</li><li><a href="http://www.cnblogs.com/shihaiming/tag/ActiveMQ/">ActiveMQ</a>(11)</li><li><a href="http://www.cnblogs.com/shihaiming/tag/spring/">spring</a>(10)</li><li><a href="http://www.cnblogs.com/shihaiming/tag/tomcat/">tomcat</a>(9)</li><li><a href="http://www.cnblogs.com/shihaiming/tag/">更多</a></li>
</ul>
</div></div><div id="sidebar_categories">
<div class="catListPostArchive">
<h3 class="catListTitle">随笔档案</h3>

<ul>

<li><a id="CatList_LinkList_0_Link_0" href="http://www.cnblogs.com/shihaiming/archive/2017/04.html">2017年4月 (11)</a> </li>

<li><a id="CatList_LinkList_0_Link_1" href="http://www.cnblogs.com/shihaiming/archive/2017/03.html">2017年3月 (15)</a> </li>

<li><a id="CatList_LinkList_0_Link_2" href="http://www.cnblogs.com/shihaiming/archive/2017/02.html">2017年2月 (27)</a> </li>

<li><a id="CatList_LinkList_0_Link_3" href="http://www.cnblogs.com/shihaiming/archive/2017/01.html">2017年1月 (81)</a> </li>

<li><a id="CatList_LinkList_0_Link_4" href="http://www.cnblogs.com/shihaiming/archive/2016/12.html">2016年12月 (72)</a> </li>

<li><a id="CatList_LinkList_0_Link_5" href="http://www.cnblogs.com/shihaiming/archive/2016/11.html">2016年11月 (70)</a> </li>

<li><a id="CatList_LinkList_0_Link_6" href="http://www.cnblogs.com/shihaiming/archive/2016/10.html">2016年10月 (69)</a> </li>

<li><a id="CatList_LinkList_0_Link_7" href="http://www.cnblogs.com/shihaiming/archive/2016/09.html">2016年9月 (50)</a> </li>

<li><a id="CatList_LinkList_0_Link_8" href="http://www.cnblogs.com/shihaiming/archive/2016/08.html">2016年8月 (56)</a> </li>

<li><a id="CatList_LinkList_0_Link_9" href="http://www.cnblogs.com/shihaiming/archive/2016/07.html">2016年7月 (1)</a> </li>

</ul>

</div>

</div><div id="sidebar_recentcomments" class="sidebar-block"><div id="recent_comments_wrap">
<div class="catListComment">
<h3 class="catListTitle">最新评论</h3>

	<div id="RecentCommentsBlock"><ul>
        <li class="recent_comment_title"><a href="http://www.cnblogs.com/shihaiming/p/5809553.html#3666364">1. Re:Linux下安装jdk8步骤详述</a></li>
        <li class="recent_comment_body">老哥，大部分是正确的，但是修改/etc/profile那部分的东西写错了，应该是export JAVA_HOME=/usr/java/jdk1.8.0_60export CLASSPATH=$JAVA......</li>
        <li class="recent_comment_author">--Joseph_buaa</li>
        <li class="recent_comment_title"><a href="http://www.cnblogs.com/shihaiming/p/5887654.html#3661341">2. Re:fiddler2抓包工具使用图文教程</a></li>
        <li class="recent_comment_body">给的链接有问题，大家去官网下</li>
        <li class="recent_comment_author">--菲菲菲菲菲常新的新手</li>
        <li class="recent_comment_title"><a href="http://www.cnblogs.com/shihaiming/p/6588485.html#3656973">3. Re:spring mvc 选中多文件同时上传(利用input元素的multiple属性)</a></li>
        <li class="recent_comment_body">excuse me，您的rect和reck分不清楚怎么测试成功的呢</li>
        <li class="recent_comment_author">--鱼儿眼中的海</li>
        <li class="recent_comment_title"><a href="http://www.cnblogs.com/shihaiming/p/6069265.html#3651983">4. Re:windows+mysql集群搭建-三分钟搞定集群</a></li>
        <li class="recent_comment_body">mysql集群我们现在做到的是加入一个数据节点宕机后，不会影响整个集群的运行，数据也不会丢失，保证了数据的完整性。</li>
        <li class="recent_comment_author">--像大海一样生活</li>
        <li class="recent_comment_title"><a href="http://www.cnblogs.com/shihaiming/p/6296230.html#3646953">5. Re:filter过滤器实现特殊字符转义</a></li>
        <li class="recent_comment_body">怎么能既过滤特殊符号又能防止SQL注入呢</li>
        <li class="recent_comment_author">--小格格么么么</li>
</ul>
</div>
</div>
</div></div><div id="sidebar_topviewedposts" class="sidebar-block"><div id="topview_posts_wrap">
<div class="catListView">
<h3 class="catListTitle">阅读排行榜</h3>
	<div id="TopViewPostsBlock"><ul><li><a href="http://www.cnblogs.com/shihaiming/p/5809553.html">1. Linux下安装jdk8步骤详述(25241)</a></li><li><a href="http://www.cnblogs.com/shihaiming/p/5949272.html">2. linux查看内存占用情况(11188)</a></li><li><a href="http://www.cnblogs.com/shihaiming/p/5853595.html">3. mysql解决datetime与timestamp精确到毫秒的问题(6024)</a></li><li><a href="http://www.cnblogs.com/shihaiming/p/5979728.html">4. java通过UUID生成16位唯一订单号(4032)</a></li><li><a href="http://www.cnblogs.com/shihaiming/p/5809212.html">5. powerdesigner 设置字段显示comment注释(3658)</a></li></ul></div>
</div>
</div></div><div id="sidebar_topcommentedposts" class="sidebar-block"><div id="topfeedback_posts_wrap">
<div class="catListFeedback">
<h3 class="catListTitle">评论排行榜</h3>
	<div id="TopFeedbackPostsBlock"><ul><li><a href="http://www.cnblogs.com/shihaiming/p/6296230.html">1. filter过滤器实现特殊字符转义(2)</a></li><li><a href="http://www.cnblogs.com/shihaiming/p/5809553.html">2. Linux下安装jdk8步骤详述(1)</a></li><li><a href="http://www.cnblogs.com/shihaiming/p/5833244.html">3. java转换emoji表情(1)</a></li><li><a href="http://www.cnblogs.com/shihaiming/p/5953956.html">4. spring集成 JedisCluster 连接 redis3.0 集群(1)</a></li><li><a href="http://www.cnblogs.com/shihaiming/p/5887654.html">5. fiddler2抓包工具使用图文教程(1)</a></li></ul></div>
</div>
</div></div><div id="sidebar_topdiggedposts" class="sidebar-block"><div id="topdigg_posts_wrap">
<div class="catListView">
<h3 class="catListTitle">推荐排行榜</h3>
<div id="TopDiggPostsBlock"><ul><li><a href="http://www.cnblogs.com/shihaiming/p/5999173.html">1. LoadRunner测试结果分析(3)</a></li><li><a href="http://www.cnblogs.com/shihaiming/p/5809553.html">2. Linux下安装jdk8步骤详述(2)</a></li><li><a href="http://www.cnblogs.com/shihaiming/p/5953956.html">3. spring集成 JedisCluster 连接 redis3.0 集群(1)</a></li><li><a href="http://www.cnblogs.com/shihaiming/p/5949272.html">4. linux查看内存占用情况(1)</a></li><li><a href="http://www.cnblogs.com/shihaiming/p/5855616.html">5. 更改MySQL数据库的编码为utf8mb4(1)</a></li></ul></div>
</div></div></div></div><script type="text/javascript">loadBlogSideColumn();</script>
			</div>
			
		</div><!--end: sideBarMain -->
	</div><!--end: sideBar 侧边栏容器 -->
	<div class="clear"></div>
	</div><!--end: main -->
	<div class="clear"></div>
	<div id="footer">
		
<!--done-->
Copyright ©2017 这个名字想了很久~
	</div><!--end: footer -->
</div><!--end: home 自定义的最大容器 -->


</body></html>